package org.x.note.cipher;

import java.nio.charset.Charset;

import org.apache.commons.codec.binary.Base64;

/**
 * [文件名称]<br>
 * Base64Util <br>
 * <br>
 * [文件描述]<br>
 * BASE64加密算法<br>
 * <br>
 * [修改记录]<br>
 * 2012-5-31 ver1.00 创建 xyl<br>
 * 
 * @author xyl
 * @version 1.00
 */
public class Base64Util {

	/**
	 * 加密
	 * 
	 * @param str
	 *            加密字符串
	 * @param charset
	 *            编码
	 * @return
	 */
	public static String encode(String str, Charset charset) {
		return new String(Base64.encodeBase64(str.getBytes(charset)), charset);
	}

	/**
	 * 解密
	 * 
	 * @param str
	 *            解密字符串
	 * @param charset
	 *            编码
	 * @return
	 */
	public static String decode(String str, Charset charset) {
		return new String(Base64.decodeBase64(str.getBytes(charset)), charset);
	}

	public static void main(String[] args) {
		String str = "BASE64加密测试";
		System.out.println("原文-->" + str);
		String str1 = Base64Util.encode(str, Charset.forName("UTF-8"));
		System.out.println("加密-->" + str1);
		String str2 = Base64Util.decode(str1, Charset.forName("UTF-8"));
		System.out.println("解密-->" + str2);
	}
}
